Python fits.BinTableHDU方法代码示例

您所在的位置:网站首页 binary table Python fits.BinTableHDU方法代码示例

Python fits.BinTableHDU方法代码示例

#Python fits.BinTableHDU方法代码示例| 来源: 网络整理| 查看: 265

本文整理汇总了Python中astropy.io.fits.BinTableHDU方法的典型用法代码示例。如果您正苦于以下问题:Python fits.BinTableHDU方法的具体用法?Python fits.BinTableHDU怎么用?Python fits.BinTableHDU使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在astropy.io.fits的用法示例。

在下文中一共展示了fits.BinTableHDU方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: parse_input_healpix_data # 需要导入模块: from astropy.io import fits [as 别名] # 或者: from astropy.io.fits import BinTableHDU [as 别名] def parse_input_healpix_data(input_data, field=0, hdu_in=None, nested=None): """ Parse input HEALPIX data to return a Numpy array and coordinate frame object. """ if isinstance(input_data, (TableHDU, BinTableHDU)): data = input_data.data header = input_data.header coordinate_system_in = parse_coord_system(header['COORDSYS']) array_in = data[data.columns[field].name].ravel() if 'ORDERING' in header: nested = header['ORDERING'].lower() == 'nested' elif isinstance(input_data, str): hdu = fits.open(input_data)[hdu_in or 1] return parse_input_healpix_data(hdu, field=field) elif isinstance(input_data, tuple) and isinstance(input_data[0], np.ndarray): array_in = input_data[0] coordinate_system_in = parse_coord_system(input_data[1]) else: raise TypeError("input_data should either be an HDU object or a tuple of (array, frame)") return array_in, coordinate_system_in, nested 开发者ID:astropy,项目名称:astropy-healpix,代码行数:24,代码来源:utils.py 示例2: table_to_fits # 需要导入模块: from astropy.io import fits [as 别名] # 或者: from astropy.io.fits import BinTableHDU [as 别名] def table_to_fits(table): """ Convert an astropy table to a fits binary table HDU :param table: astropy table :return: fits BinTableHDU """ hdu = fits.BinTableHDU(table) # Put in the description keywords for k in hdu.header.keys(): if 'TTYPE' in k: column_name = hdu.header[k].lower() description = table[column_name].description hdu.header[k] = (column_name.upper(), description) # Get the value of n in TTYPE n = k[5:] hdu.header['TCOMM{0}'.format(n)] = description return hdu 开发者ID:LCOGT,项目名称:banzai,代码行数:19,代码来源:fits_utils.py 示例3: to_fits # 需要导入模块: from astropy.io import fits [as 别名] # 或者: from astropy.io.fits import BinTableHDU [as 别名] def to_fits(self, context) -> Union[fits.HDUList, list]: hdu = fits.BinTableHDU(self.data) hdu.name = self.name # For all TTYPE header keywords, set the header comment # from the table column's description. for k in self.meta.keys(): if 'TTYPE' in k: column_name = self.meta[k] description = self.data[column_name].description hdu.header[k] = (column_name.upper(), description) # Get the value of n in TTYPEn n = k[5:] # Also add the TCOMMn header keyword with the description of the table column hdu.header['TCOMM{0}'.format(n)] = description return [hdu] 开发者ID:LCOGT,项目名称:banzai,代码行数:18,代码来源:data.py 示例4: from_tree # 需要导入模块: from astropy.io import fits [as 别名] # 或者: from astropy.io.fits import BinTableHDU [as 别名] def from_tree(cls, data, ctx): hdus = [] first = True for hdu_entry in data: header = fits.Header([fits.Card(*x) for x in hdu_entry['header']]) data = hdu_entry.get('data') if data is not None: try: data = data.__array__() except ValueError: data = None if first: hdu = fits.PrimaryHDU(data=data, header=header) first = False elif data.dtype.names is not None: hdu = fits.BinTableHDU(data=data, header=header) else: hdu = fits.ImageHDU(data=data, header=header) hdus.append(hdu) hdulist = fits.HDUList(hdus) return hdulist 开发者ID:holzschu,项目名称:Carnets,代码行数:23,代码来源:fits.py 示例5: test_table_to_hdu # 需要导入模块: from astropy.io import fits [as 别名] # 或者: from astropy.io.fits import BinTableHDU [as 别名] def test_table_to_hdu(self): table = Table([[1, 2, 3], ['a', 'b', 'c'], [2.3, 4.5, 6.7]], names=['a', 'b', 'c'], dtype=['i', 'U1', 'f']) table['a'].unit = 'm/s' table['b'].unit = 'not-a-unit' with catch_warnings() as w: hdu = fits.table_to_hdu(table) assert len(w) == 1 assert str(w[0].message).startswith("'not-a-unit' did not parse as" " fits unit") # Check that TUNITn cards appear in the correct order # (https://github.com/astropy/astropy/pull/5720) assert hdu.header.index('TUNIT1') < hdu.header.index('TTYPE2') assert isinstance(hdu, fits.BinTableHDU) filename = self.temp('test_table_to_hdu.fits') hdu.writeto(filename, overwrite=True) 开发者ID:holzschu,项目名称:Carnets,代码行数:21,代码来源:test_convenience.py 示例6: test_constructor_copies_header # 需要导入模块: from astropy.io import fits [as 别名] # 或者: from astropy.io.fits import BinTableHDU [as 别名] def test_constructor_copies_header(self): """ Regression test for https://aeon.stsci.edu/ssb/trac/pyfits/ticket/153 Ensure that a header from one HDU is copied when used to initialize new HDU. This is like the test of the same name in test_image, but tests this for tables as well. """ ifd = fits.HDUList([fits.PrimaryHDU(), fits.BinTableHDU()]) thdr = ifd[1].header thdr['FILENAME'] = 'labq01i3q_rawtag.fits' thdu = fits.BinTableHDU(header=thdr) ofd = fits.HDUList(thdu) ofd[0].header['FILENAME'] = 'labq01i3q_flt.fits' # Original header should be unchanged assert thdr['FILENAME'] == 'labq01i3q_rawtag.fits' 开发者ID:holzschu,项目名称:Carnets,代码行数:23,代码来源:test_table.py 示例7: test_column_endianness # 需要导入模块: from astropy.io import fits [as 别名] # 或者: from astropy.io.fits import BinTableHDU [as 别名] def test_column_endianness(self): """ Regression test for https://aeon.stsci.edu/ssb/trac/pyfits/ticket/77 (Astropy doesn't preserve byte order of non-native order column arrays) """ a = [1., 2., 3., 4.] a1 = np.array(a, dtype='f8') col1 = fits.Column(name='a', format='D', array=a1) col2 = fits.Column(name='b', format='D', array=a2) cols = fits.ColDefs([col1, col2]) tbhdu = fits.BinTableHDU.from_columns(cols) assert (tbhdu.data['a'] == a1).all() assert (tbhdu.data['b'] == a2).all() # Double check that the array is converted to the correct byte-order # for FITS (big-endian). tbhdu.writeto(self.temp('testendian.fits'), overwrite=True) with fits.open(self.temp('testendian.fits')) as hdul: assert (hdul[1].data['a'] == a2).all() assert (hdul[1].data['b'] == a2).all() 开发者ID:holzschu,项目名称:Carnets,代码行数:26,代码来源:test_table.py 示例8: test_modify_column_attributes # 需要导入模块: from astropy.io import fits [as 别名] # 或者: from astropy.io.fits import BinTableHDU [as 别名] def test_modify_column_attributes(self): """Regression test for https://github.com/astropy/astropy/issues/996 This just tests one particular use case, but it should apply pretty well to other similar cases. """ NULLS = {'a': 2, 'b': 'b', 'c': 2.3} data = np.array(list(zip([1, 2, 3, 4], ['a', 'b', 'c', 'd'], [2.3, 4.5, 6.7, 8.9])), dtype=[('a', int), ('b', 'S1'), ('c', float)]) b = fits.BinTableHDU(data=data) for col in b.columns: col.null = NULLS[col.name] b.writeto(self.temp('test.fits'), overwrite=True) with fits.open(self.temp('test.fits')) as hdul: header = hdul[1].header assert header['TNULL1'] == 2 assert header['TNULL2'] == 'b' assert header['TNULL3'] == 2.3 开发者ID:holzschu,项目名称:Carnets,代码行数:27,代码来源:test_table.py 示例9: test_mask_array # 需要导入模块: from astropy.io import fits [as 别名] # 或者: from astropy.io.fits import BinTableHDU [as 别名] def test_mask_array(self): t = fits.open(self.data('table.fits')) tbdata = t[1].data mask = tbdata.field('V_mag') > 12 newtbdata = tbdata[mask] hdu = fits.BinTableHDU(newtbdata) hdu.writeto(self.temp('newtable.fits')) hdul = fits.open(self.temp('newtable.fits')) # match to a regex rather than a specific string. expect = r"\[\('NGC1002',\s+12.3[0-9]*\) \(\'NGC1003\',\s+15.[0-9]+\)\]" assert re.match(expect, str(hdu.data)) assert re.match(expect, str(hdul[1].data)) t.close() hdul.close() 开发者ID:holzschu,项目名称:Carnets,代码行数:19,代码来源:test_table.py 示例10: test_fits_record_len # 需要导入模块: from astropy.io import fits [as 别名] # 或者: from astropy.io.fits import BinTableHDU [as 别名] def test_fits_record_len(self): counts = np.array([312, 334, 308, 317]) names = np.array(['NGC1', 'NGC2', 'NGC3', 'NCG4']) c1 = fits.Column(name='target', format='10A', array=names) c2 = fits.Column(name='counts', format='J', unit='DN', array=counts) c3 = fits.Column(name='notes', format='A10') c4 = fits.Column(name='spectrum', format='5E') c5 = fits.Column(name='flag', format='L', array=[1, 0, 1, 1]) coldefs = fits.ColDefs([c1, c2, c3, c4, c5]) tbhdu = fits.BinTableHDU.from_columns(coldefs) tbhdu.writeto(self.temp('table1.fits')) t1 = fits.open(self.temp('table1.fits')) assert len(t1[1].data[0]) == 5 assert len(t1[1].data[0][0:4]) == 4 assert len(t1[1].data[0][0:5]) == 5 assert len(t1[1].data[0][0:6]) == 5 assert len(t1[1].data[0][0:7]) == 5 assert len(t1[1].data[0][1:4]) == 3 assert len(t1[1].data[0][1:5]) == 4 assert len(t1[1].data[0][1:6]) == 4 assert len(t1[1].data[0][1:7]) == 4 t1.close() 开发者ID:holzschu,项目名称:Carnets,代码行数:27,代码来源:test_table.py 示例11: test_bin_table_with_logical_array # 需要导入模块: from astropy.io import fits [as 别名] # 或者: from astropy.io.fits import BinTableHDU [as 别名] def test_bin_table_with_logical_array(self): c1 = fits.Column(name='flag', format='2L', array=[[True, False], [False, True]]) coldefs = fits.ColDefs([c1]) tbhdu1 = fits.BinTableHDU.from_columns(coldefs) assert (tbhdu1.data.field('flag')[0] == np.array([True, False], dtype=bool)).all() assert (tbhdu1.data.field('flag')[1] == np.array([False, True], dtype=bool)).all() tbhdu = fits.BinTableHDU.from_columns(tbhdu1.data) assert (tbhdu.data.field('flag')[0] == np.array([True, False], dtype=bool)).all() assert (tbhdu.data.field('flag')[1] == np.array([False, True], dtype=bool)).all() 开发者ID:holzschu,项目名称:Carnets,代码行数:20,代码来源:test_table.py 示例12: test_dump_load_round_trip # 需要导入模块: from astropy.io import fits [as 别名] # 或者: from astropy.io.fits import BinTableHDU [as 别名] def test_dump_load_round_trip(self): """ A simple test of the dump/load methods; dump the data, column, and header files and try to reload the table from them. """ hdul = fits.open(self.data('table.fits')) tbhdu = hdul[1] datafile = self.temp('data.txt') cdfile = self.temp('coldefs.txt') hfile = self.temp('header.txt') tbhdu.dump(datafile, cdfile, hfile) new_tbhdu = fits.BinTableHDU.load(datafile, cdfile, hfile) assert comparerecords(tbhdu.data, new_tbhdu.data) # Double check that the headers are equivalent assert str(tbhdu.header) == str(new_tbhdu.header) hdul.close() 开发者ID:holzschu,项目名称:Carnets,代码行数:24,代码来源:test_table.py 示例13: test_dump_load_array_colums # 需要导入模块: from astropy.io import fits [as 别名] # 或者: from astropy.io.fits import BinTableHDU [as 别名] def test_dump_load_array_colums(self): """ Regression test for https://github.com/spacetelescope/PyFITS/issues/22 Ensures that a table containing a multi-value array column can be dumped and loaded successfully. """ data = np.rec.array([('a', [1, 2, 3, 4], 0.1), ('b', [5, 6, 7, 8], 0.2)], formats='a1,4i4,f8') tbhdu = fits.BinTableHDU.from_columns(data) datafile = self.temp('data.txt') cdfile = self.temp('coldefs.txt') hfile = self.temp('header.txt') tbhdu.dump(datafile, cdfile, hfile) new_tbhdu = fits.BinTableHDU.load(datafile, cdfile, hfile) assert comparerecords(tbhdu.data, new_tbhdu.data) assert str(tbhdu.header) == str(new_tbhdu.header) 开发者ID:holzschu,项目名称:Carnets,代码行数:22,代码来源:test_table.py 示例14: test_table_from_bool_fields # 需要导入模块: from astropy.io import fits [as 别名] # 或者: from astropy.io.fits import BinTableHDU [as 别名] def test_table_from_bool_fields(self): """ Regression test for https://aeon.stsci.edu/ssb/trac/pyfits/ticket/113 Tests creating a table from a recarray containing numpy.bool columns. """ array = np.rec.array([(True, False), (False, True)], formats='|b1,|b1') thdu = fits.BinTableHDU.from_columns(array) assert thdu.columns.formats == ['L', 'L'] assert comparerecords(thdu.data, array) # Test round trip thdu.writeto(self.temp('table.fits')) data = fits.getdata(self.temp('table.fits'), ext=1) assert thdu.columns.formats == ['L', 'L'] assert comparerecords(data, array) 开发者ID:holzschu,项目名称:Carnets,代码行数:19,代码来源:test_table.py 示例15: test_bintable_to_asciitable # 需要导入模块: from astropy.io import fits [as 别名] # 或者: from astropy.io.fits import BinTableHDU [as 别名] def test_bintable_to_asciitable(self): """Tests initializing a TableHDU with the data from a BinTableHDU.""" with fits.open(self.data('tb.fits')) as hdul: tbdata = hdul[1].data tbhdu = fits.TableHDU(data=tbdata) with ignore_warnings(): tbhdu.writeto(self.temp('test.fits'), overwrite=True) with fits.open(self.temp('test.fits')) as hdul2: tbdata2 = hdul2[1].data assert np.all(tbdata['c1'] == tbdata2['c1']) assert np.all(tbdata['c2'] == tbdata2['c2']) # c3 gets converted from float32 to float64 when writing # test.fits, so cast to float32 before testing that the correct # value is retrieved assert np.all(tbdata['c3'].astype(np.float32) == tbdata2['c3'].astype(np.float32)) # c4 is a boolean column in the original table; we want ASCII # columns to convert these to columns of 'T'/'F' strings assert np.all(np.where(tbdata['c4'], 'T', 'F') == tbdata2['c4']) 开发者ID:holzschu,项目名称:Carnets,代码行数:23,代码来源:test_table.py

注:本文中的astropy.io.fits.BinTableHDU方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3